A data or telecommunications network consists of a number of network elements interconnected by physical connections. Network elements implement routing, switching and transport functions that are required to establish communication between two or more network end-points.
In addition, network elements may implement application functions like multimedia telephony or unified messaging, which provide additional value for the end-user beyond basic end-to-end connectivity. In traditional telecommunication networks, the number of different types of network elements has been quite small, because network functions spanning from transport to the application layer have been integrated in a single element.
However, following the convergence of data and telecommunication technologies, the number of different network element types is increasing. Ericsson and other vendors are dividing the next generation network into connectivity, control and application layers, with a large number of specialized network element types at each layer. The next generation network enables the operator to decrease time-to-market for new services, and differentiate current service offerings more effectively.
Network traffic is increasing rapidly in access and carrier networks world-wide, which implies that the number of network elements is growing fast in order to handle the increased network load. This and the fact that network elements are becoming more specialized require more effective operation and maintenance of the network.
In large operator networks with thousands of network elements, software upgrade is both a time-consuming and complex process. The complexity of the upgrade process makes it difficult to roll out software on several elements in parallel, because the operator needs to manually supervise every step of the process.
The software upgrade process is also often complicated by dependencies between software modules. There may be dependencies on the version of other software modules that need to be resolved before upgrade can commence. There are also runtime dependencies between software modules, which implies that a software module may not be upgraded while another is running. In addition, the upgrade process is complicated by dependencies between software modules and the underlying hardware that executes the software.
Exceptional situations may also frequently occur during the upgrade process, which require special attention or even rollback of some or all steps performed up to that point.
As described above, next generation networks will include a large number of network elements based on different hardware platforms. This further complicates the software upgrade process, since it requires experience on several different hardware platforms. In the current situation, experience is required only on a small number of different platforms, e.g. the AXE platform for Ericsson's network elements. However, this is about to change and for next generation, Ericsson is introducing Cello, TelORB, Ronja, Erlang OTP and Tigris platforms. The situation is also similar for other vendors.
Another problem of today's upgrading methods is that education of operation and maintenance staff on every new platform is expensive. In addition, software upgrading is in great extent performed manually at the network element site or remotely from an operation and maintenance center. The problem with the manual approach is that experienced operators are required to control the process, and such individuals are often a scarce resource that should not be used for routine like operations. In addition, humans cannot control more than a few upgrades in parallel, whereas computer programs can control a large amount in parallel.
There are IT applications which produce software packages used to install software components on general-purpose computers, e.g. InstallShield® from InstallShield Software Corporation Inc. These applications produce software packages that contain scripts to interact with the user and copy the software into the system. It is also common to include scripts to remove software from the system. Since a network element may be seen as a special-purpose computer, these IT applications should be regarded as known solutions.
Current script based solutions can be used to install software on a single network element, but there are no known solutions for automating the entire upgrade process. The latter is required to upgrade software on several network elements in parallel. The problem is that any number of exceptional situations may arise during the upgrade process.
European Patent Application EP 0 945 792 A2, held by Sun Microsystems Inc., describes a technique for implementing a framework for extensible applications. Using the framework, a software module which installs itself within an application can be developed. In this context, one may regard a network element as an “application”, thus the patent could be used for software upgrade of network elements.
However, no known network elements are based on the framework proposed here, and for this reason, this patent proposes no solution to the software upgrade problem of existing network elements. Also, it is not likely that future network elements will implement this framework.
International Patent Application PCT/SE92/00411, held by ICL Data AB, describes a “method and system for revising data in a distributed data communication system”. The following procedure is described in the patent to perform an installation or upgrade of data. In this context, software may be regarded as data.                1. Establish a list of destination devices        2. Establish a procedure for the revision of data on selected destination devices, and store this as a revision recipe.        3. Create a data package with the data to be revised and the revision recipe.        4. The data package is distributed to selected destination devices.        5. The selected destination devices interpret the information in the data package by means of a special interpreter program installed in each device.        
The above patent concerns only installation or upgrade of workstations in a distributed data communication system. There are different non-functional requirements for upgrade of workstations and network elements. For instance, downtime may be accepted for workstations, while this is unacceptable for network elements, i.e. the upgrade must be performed while traffic is running.
The object of the present invention is to provide a method eliminating the drawbacks described above.
More specifically, a main object of the present invention is to simplify the complex and time-consuming upgrade process in a data or telecommunication network including a large number of network elements by introducing automatic software upgrade of the elements.
Another object of the invention is that it provides the required fault tolerance during the upgrade process to ensure that special attention or even rollback of some or all steps performed up to a certain point takes place. This is achieved by dividing the process in a number of steps, where each step must complete successfully before proceeding with the next.
A further object of the invention is that it minimizes the need for expensive, manual intervention by expert operators.
The present invention also overcomes the drawbacks of the mentioned international Patent Application PCT/SE92/00411, e.g. the scope of the present invention is upgrade of network elements that carry the traffic in the communication system, and no downtime for the elements while upgrading is required.